package com.jy.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.jy.common.convert.IntegerToBooleanConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Convert;

/**
 * <p>
 * 动态表（用户发的动态：包括笔记，视频，此刻）
 * </p>
 *
 * @author fzg
 * @since 2024-11-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Dynamic implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 动态aid
     */
    @TableId(value = "aid", type = IdType.AUTO)
    private Integer aid;

    /**
     * 动态名称
     */
    private String dynamicName;

    /**
     * 动态类型
     */
    private String dynamicType;

    /**
     * 动态发的图片（地址用分号隔开）
     */
    private String dynamicImgs;

    /**
     * 动态描述，动态内容
     */
    private String dynamicContent;

    /**
     * 点赞量
     */
    private Integer dianZanNum;

    /**
     * 评论数量
     */
    private Integer commentNum;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 谁发的动态
     */
    private Integer userAid;

    /**
     * 境内发的还是境外发的
     */
    private String dynamicArea;

    /**
     * 动态视频（如果发的是动态就为null）
     */
    private String dynamicVideo;

    /**
     * 动态的主图封面图（如果只有图片的动态那就设置主图；如果只有视频的动态那就设置视频的封面图）
     */
    private String dynamicCover;

    /**
     * 是否草稿
     */
    @Convert(converter = IntegerToBooleanConverter.class)
    private Boolean isDraft;

    /**
     * 是否发布
     */
    @Convert(converter = IntegerToBooleanConverter.class)
    private Boolean isRelease;


    /**
     * 这篇动态@的用户们（用户aid之间用英文逗号隔开）
     */
    private String aiteUserAid;


    /**
     * 动态（笔记）的地址
     */
    private String releaseAddress;


    /**
     * 可见范围
     */
    private String seeField;


    /**
     * 笔记是图片还是视频
     */
    private String medioType;

    /**
     * 这篇动态关联的话题（可以为空，话题aid之间用英文 ; 隔开）
     */
    private String topicAid;


    /**
     * 这个动态或者笔记的收藏量
     */
    private Long collectNum;


    /**
     * 标记地址的经纬度
     */
    private String releaseAddressPosition;



}
